// @ts-ignore
/* eslint-disable */
import { request } from 'umi';

/** 修改串口配置详情 PUT /api/deviceDetail/update/${param1} */
export async function putApiDeviceDetailUpdate_id_D(
  params: {
    // path
    /** 串口配置详情ID */
    id: string;
    'id:/d/': string;
  },
  body: {
    /** 名称：Modbus_TCP IP地址
说明：HostName */
    ip?: string;
    /** 名称：Modbus_TCP 端口
说明：整型，范围[0,65535] */
    port?: number;
    /** 名称：Dlt645地址域
说明：长整型，范围[0, 0xFFFFFFFFFFFF] */
    address?: string;
    /** 名称：Dlt645前导字节
说明：前导0xFE的个数 */
    leadByte?: number;
    /** 名称：Modbus_RTU 从站地址/单元标识符
说明：整型，
从站地址：范围[1,247]
单元标识符：范围[0,255] */
    slaveId?: number;
    /** 名称：Modbus_RTU 单次请求最多可以请求的寄存器字节数
说明：当存在多个连续的数据点时，如果单次请求的总长度（请求内数据点的length * 2之和）大于groupLength时，该请求会被分包。 */
    groupLength?: number;
    /** 名称： Modbus_RTU CRC字节序
说明：整型，范围[0, 15] */
    crcOrder?: 'BIG_ORDER' | 'SMALL_ORDER';
  },
  options?: { [key: string]: any },
) {
  const { id: param0, 'id:/d/': param1, ...queryParams } = params;
  return request<{
    id?: number;
    deviceId?: number;
    gatewayId?: string;
    ip?: string;
    port?: number;
    address?: string;
    leadByte?: number;
    slaveId?: number;
    groupLength?: number;
    crcOrder?: 'BIG_ORDER' | 'SMALL_ORDER';
  }>(`/api/deviceDetail/update/${param1}`, {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
    },
    params: { ...queryParams },
    data: body,
    ...(options || {}),
  });
}

/** 创建串口配置详情 POST /api/deviceDetail/create */
export async function postApiDeviceDetailCreate(
  params: {
    // query
    deviceId: string;
  },
  body: {
    /** 名称：Modbus_TCP IP地址
说明：HostName */
    ip?: string;
    /** 名称：Modbus_TCP 端口
说明：整型，范围[0,65535] */
    port?: number;
    /** 名称：Dlt645地址域
说明：长整型，范围[0, 0xFFFFFFFFFFFF] */
    address?: string;
    /** 名称：Dlt645前导字节
说明：前导0xFE的个数 */
    leadByte?: number;
    /** 名称：Modbus_RTU 从站地址/单元标识符
说明：整型，
从站地址：范围[1,247]
单元标识符：范围[0,255] */
    slaveId?: number;
    /** 名称：Modbus_RTU 单次请求最多可以请求的寄存器字节数
说明：当存在多个连续的数据点时，如果单次请求的总长度（请求内数据点的length * 2之和）大于groupLength时，该请求会被分包。 */
    groupLength?: number;
    /** 名称： Modbus_RTU CRC字节序
说明：整型，范围[0, 15] */
    crcOrder?: 'BIG_ORDER' | 'SMALL_ORDER';
  },
  options?: { [key: string]: any },
) {
  return request<{
    id?: number;
    deviceId?: number;
    gatewayId?: string;
    ip?: string;
    port?: number;
    address?: string;
    leadByte?: number;
    slaveId?: number;
    groupLength?: number;
    crcOrder?: 'BIG_ORDER' | 'SMALL_ORDER';
  }>('/api/deviceDetail/create', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  });
}

/** 删除串口配置详情 DELETE /api/deviceDetail/${param1} */
export async function deleteApiDeviceDetail_id_D(
  params: {
    // path
    /** 串口配置详情ID */
    id: string;
    'id:/d/': string;
  },
  options?: { [key: string]: any },
) {
  const { id: param0, 'id:/d/': param1, ...queryParams } = params;
  return request<Record<string, any>>(`/api/deviceDetail/${param1}`, {
    method: 'DELETE',
    params: { ...queryParams },
    ...(options || {}),
  });
}

/** 查找一个串口配置详情 GET /api/deviceDetail/queryOne/${param1} */
export async function getApiDeviceDetailQueryOne_id_D(
  params: {
    // path
    /** 串口配置详情ID */
    id: string;
    'id:/d/': string;
  },
  options?: { [key: string]: any },
) {
  const { id: param0, 'id:/d/': param1, ...queryParams } = params;
  return request<{
    id?: number;
    deviceId?: number;
    gatewayId?: string;
    ip?: string;
    port?: number;
    address?: string;
    leadByte?: number;
    slaveId?: number;
    groupLength?: number;
    crcOrder?: 'BIG_ORDER' | 'SMALL_ORDER';
  }>(`/api/deviceDetail/queryOne/${param1}`, {
    method: 'GET',
    params: { ...queryParams },
    ...(options || {}),
  });
}

/** 查找串口配置下的串口配置详情 GET /api/deviceDetail/queryByDeviceId */
export async function getApiDeviceDetailQueryByDeviceId(
  params: {
    // query
    /** 串口配置ID */
    deviceId: string;
  },
  options?: { [key: string]: any },
) {
  return request<
    {
      id?: number;
      deviceId?: number;
      gatewayId?: string;
      ip?: string;
      port?: number;
      address?: string;
      leadByte?: number;
      slaveId?: number;
      groupLength?: number;
      crcOrder?: 'BIG_ORDER' | 'SMALL_ORDER';
    }[]
  >('/api/deviceDetail/queryByDeviceId', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}
